<template>
  <div id="app">
    <el-menu
      :default-active="activeIndex"
      mode="horizontal"
      background-color="#545c64"
      text-color="#fff"
      :router="asRouter"
      @select="handleSelect"
      active-text-color="#ffd04b">
      <el-menu-item index="/cardAdd">发布商品</el-menu-item>
      <el-menu-item index="/cardList">商品列表</el-menu-item>
      <el-menu-item index="/cardLike">收藏</el-menu-item>
      <el-menu-item index="/logout">退出</el-menu-item>
    </el-menu>
    <router-view/>
  </div>
</template>

<script>
export default {
  name: 'App',
  data() {
    return {
      activeIndex: '1',
      asRouter: true
    }
  },
  // 页面挂载的时候 添加一个浏览器刷新的监听时间 刷新时调用saveState
  mounted() {
    window.addEventListener('unload', this.saveState);
  },
  methods: {
    handleSelect(key, keyPath) {
      console.log(key, keyPath);
      // 如果点击的是logout 后端在执行用户退出操作，退出完成后路由到登录页面
      if(key=='/logout'){
        let vm = this;
      this.axios({
        url: `http://localhost:9090/user/logout`,
        method: 'GET'
      }).then(function (res) {
        if (res.data.code == 200) {
          vm.$message.success('退出成功!');
          // 通知整个整个应用 人员信息修改了
          vm.$store.commit('updateUser', null);
           setTimeout(function () {
            vm.$router.push("/")
          }, 1000);
        }
      });
      }
    },
    saveState() {
      // 把$store中的保存保存到浏览器的sessionStorage里
      sessionStorage.setItem('state', JSON.stringify(this.$store.state));
    }
  }
}
</script>

<style>
</style>
